Pasteboard 命名空间提供在 Scripting app 中读取、设置与监听系统粘贴板内容变化的完整接口。
相比旧版 Clipboard,Pasteboard 提供了更强的功能支持,包括:
注意 如果希望能够从其他 App 粘贴内容,请前往: 设置 > Scripting > 从其他 App 粘贴 > 允许
PasteboardItem表示一个粘贴板项目。
每个项目是一个 Record<UTType, string | UIImage | Data> 映射表,其中键为数据类型(UTType),值可以是字符串、图片或二进制数据。
常见类型:
public.plain-text → 文本字符串public.url → URL 字符串public.jpeg / public.png → 图片对象(UIImage)public.data → 二进制数据(Data)示例
hasStrings: Promise<boolean>判断粘贴板中是否包含文本内容。
示例
hasImages: Promise<boolean>判断粘贴板中是否包含图片。
示例
hasURLs: Promise<boolean>判断粘贴板中是否包含 URL。
示例
numberOfItems: Promise<number>获取当前粘贴板中项目的数量。
示例
changeCount: Promise<number>获取自系统启动以来粘贴板内容变化的次数。 每当粘贴板内容发生变化(新增、修改或清空),该计数都会增加。 可用于检测粘贴板是否有更新。
示例
getString(): Promise<string | null>获取粘贴板中第一个项目的文本字符串。
示例
setString(string: string | null): Promise<void>设置粘贴板中第一个项目的文本字符串。
示例
getStrings(): Promise<string[] | null>获取粘贴板中所有项目的文本数组。
示例
setStrings(strings: string[] | null): Promise<void>设置多个文本字符串到粘贴板。
示例
getURL(): Promise<string | null>获取粘贴板中第一个 URL 字符串。
示例
setURL(url: string | null): Promise<void>设置粘贴板中第一个 URL 字符串。
示例
getURLs(): Promise<string[] | null>获取粘贴板中所有 URL 项目。
示例
setURLs(urls: string[] | null): Promise<void>设置多个 URL 项目到粘贴板。
示例
getImage(): Promise<UIImage | null>获取粘贴板中第一个图片对象。
示例
setImage(image: UIImage | null): Promise<void>设置粘贴板中第一个图片对象。
示例
getImages(): Promise<UIImage[] | null>获取粘贴板中所有图片对象。
示例
setImages(images: UIImage[] | null): Promise<void>设置多个图片对象到粘贴板。
示例
addItems(items: Item[]): Promise<void>向当前粘贴板追加新项目(不会清除已有内容)。
示例
setItems(items: Item[], options?: { localOnly?: boolean, expirationDate?: Date }): Promise<void>设置粘贴板内容为指定项目,并支持隐私控制选项。
参数
items:粘贴板项目数组。options.localOnly:若为 true,不会通过 Handoff 同步到其他设备。options.expirationDate:设置过期时间,系统会在该时间后自动清除内容。示例
getItems(): Promise<Item[] | null>获取粘贴板中所有项目,每个项目为一个 Pasteboard.Item 对象。
示例
onChanged: ((addedKeys: string[]) => void) | null | undefined当粘贴板内容发生变化时触发。
参数 addedKeys 为一个字符串数组,包含本次新增的表示类型(UTType)。
示例
onRemoved: ((removedKeys: string[]) => void) | null | undefined当粘贴板内容被移除时触发。
参数 removedKeys 为一个字符串数组,包含被移除的表示类型(UTType)。
示例
旧的 Clipboard 命名空间现已弃用,仅保留最基本的兼容接口:
Clipboard.copyText(text: string) → 请改用 Pasteboard.setString()Clipboard.getText() → 请改用 Pasteboard.getString()